package customersUnitTests;

import Customers.CustomerManagement;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

import java.util.ArrayList;
import java.util.List;

@DisplayName("Gdy zarządzasz nowymi klientami")
public class CustomerManagementTests {

    @Test
    @DisplayName("gdy nie ma klientów funkcja powinna zwrócić pusty ciąg")
    public void shouldReturnEmptyWhenThereAreNoCustomers(){
        CustomerManagement customer = new CustomerManagement();
        List<List<String>> customers = customer.getCustomers();

        assertTrue(customers.isEmpty(), "Błąd: Dane klientów istnieją.");
    }

    @Test
    @DisplayName("gdy nazwa klienta jest nieprawidłowa, funkcja powinna zgłosić wyjątek") 
    public void shouldThrowExceptionForInvalidInput(){
        List<String> newCustomer = new ArrayList<>();
        newCustomer.add("");
        newCustomer.add("Jackowski");
        newCustomer.add("20");

        CustomerManagement customer = new CustomerManagement();
        IllegalArgumentException err =
            assertThrows(IllegalArgumentException.class, () ->
            customer.addCustomers(newCustomer));
    }
}
